package com.losrebellos.display.button 
{
	import flash.events.MouseEvent;

	/*
	 *
	 * @author los rebellos - ben@benoitvinay.com
	 *
	 */
	public class BaseButtonSwitch extends BaseButton implements IButtonSwitch
	{
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// CONSTRUCTOR
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		public function BaseButtonSwitch()
		{
			super();
			
			switchForFlag();
		}
		
		
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// FLAG
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		protected var _flag:Boolean = false;
		public function get flag():Boolean
		{
			return _flag;
		}
		private function switchForFlag():void
		{
			if(_flag)
			{
				switchOnUI();
				switchOnAction();
			}
			else
			{
				switchOffUI();
				switchOffAction();
			}
		}
		
		
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// HANDLERS
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		override protected function clickHandler(e:MouseEvent = null):void
		{
			_flag != _flag;
			
			switchForFlag();
		}
		
		
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// SWITCH
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		protected function switchOnUI():void
		{
			
		}
		protected function switchOffUI():void
		{
			
		}
		protected function switchOnAction():void
		{
			
		}
		protected function switchOffAction():void
		{
			
		}
	}
}